第21章计算机的数制
数制,也称为计数制,是用一组固定的符号和统一的规则来表示数值的方法。在计算机中,由于硬件电路的特性,广泛采用二进制进行数据的存储和运算,同时为了方便人类理解和使用,也会用到八进制、十进制和十六进制。
21.1 数制的基本概念
21.1.1 基数
基数是指在某种数制中,每个数位上所能使用的数字符号的个数。
- 十进制:基数10,符号
0-9 - 二进制:基数2,符号
0、1 - 八进制:基数8,符号
0-7 - 十六进制:基数16,符号
0-9、A-F(a-f)(A=10,B=11…F=15)
21.1.2 位权
位权 = 基数的次方,从右往左,下标从0开始。
例十进制123:
21.2 计算机中常用的数制
21.2.1 十进制(Decimal)
标记后缀D,可省略;逢十进一、借一当十,日常使用。
21.2.2 二进制(Binary)
标记后缀B,仅0、1;逢二进一。
计算机底层唯一存储格式,晶体管导通/截止对应1/0。
运算规则:
加法:
减法:
21.2.3 八进制(Octal)
后缀O/Q;3位二进制等价1位八进制,用于简化书写长二进制串。逢八进一。
21.2.4 十六进制(Hexadecimal)
后缀H;4位二进制等价1位十六进制,编程最常用,逢十六进一。
21.3 数制之间的转换
21.3.1 任意进制 → 十进制
规则:按位权展开求和。
- 二进制
- 八进制
- 十六进制
21.3.2 十进制 → 任意进制
整数部分:除基取余,逆序输出 小数部分:乘基取整,顺序输出 示例1:十进制11转二进制 余1 余1 余0 余1 余数逆序:
示例2:十进制83转八进制 余3 余2 余1 逆序得
示例3:十进制419转十六进制 余3 余10(A) 余1 逆序
21.3.3 二进制 ↔ 八 / 十六进制
二进制 ↔ 八进制
3位二进制分组,不足左边补0;
例: 分组101 101 →
八进制转二进制:1位拆3位,去掉前导0。例 → 110 101
二进制 ↔ 十六进制
4位二进制分组,不足左边补0;
例 分组1011 0101 →
十六进制转二进制:1位拆4位,去掉前导0。